package ar.com.age.distribuidora.service;

import java.util.Date;
import java.util.List;

import ar.com.age.distribuidora.dominio.Cobro;
import ar.com.age.distribuidora.dominio.FacturaVenta;
import ar.com.age.distribuidora.dominio.LineaFactura;

public interface VentaService {

	void crearOEditarCobro(Cobro cliente);

	List<Cobro> buscarTodosCobro();

	void eliminarCobro(Cobro cliente);

	void crearOEditarLineaFactura(LineaFactura lineaFactura);

	List<LineaFactura> buscarTodosLineaFactura();

	void crearOEditarFacturaVenta(FacturaVenta cliente);

	List<FacturaVenta> buscarTodosFacturaVenta();

	void eliminarFacturaVenta(FacturaVenta cliente);

	List<FacturaVenta> buscarFacturaVenta(String estado, String codigo,
			String tipo, Date desde, Date hasta);

	void agregarCobroAFacturaVenta(FacturaVenta facturaVenta, Cobro cobro);

	void agregarLineaFacturaAFacturaVenta(FacturaVenta facturaVenta,
			LineaFactura lineaFactura);

	Double retornarSaldoAdeudado(FacturaVenta facturaVenta);

	List<Cobro> buscarCobro(String codigo, String estado, Date desde, Date hasta);

	FacturaVenta retornarFacturaVentaConCobros(FacturaVenta factura);

	FacturaVenta retornarFacturaVentaConLineas(FacturaVenta factura);

	void eliminarLineaFactura(LineaFactura lineaFactura);

	FacturaVenta getFacturaVentaConListas(FacturaVenta factura);

	List<FacturaVenta> getFacturasInformes(String producto, String cliente,
			String tipoCliente, Date desde, Date hasta);

}
